const express = require('express');
const router = express.Router();
const Msg = require("../../../controllers/msg.controller");

/**
 * 创建消息
 * @route POST /api/private/msg/create
 * @group 消息管理 - Operations about msg
 * @param {string} content.query.required - 请输入消息内容
 * @param {string} email.query.required - 请输入邮箱
 * @param {string} username - 发送人
 * @param {string} receive - 接收人
 * @returns {object} 200 - An array of msg info
 * @returns {object} 605 - 请求失败
 * @returns {Error}  default - Unexpected error
 */
router.post("/create", Msg.create);

/**
 * 删除消息
 * @route POST /api/private/msg/delete
 * @group 消息管理 - delete of msg
 * @param {string} id - 请输入消息ID
 * @param {string} authorization - 请输入token
 * @returns {object} 200 - An array of msg info
 * @returns {object} 605 - 请求失败
 * @returns {Error}  default - Unexpected error
 */
router.post("/delete", Msg.delete);

/**
 * 查询消息列表
 * @route POST /api/private/msg/list
 * @group 消息管理 - list of msg
 * @param {object} query - 请按固定查询规范
 * @returns {object} 200 - An array of msg info
 * @returns {object} 605 - 请求失败
 * @returns {Error}  default - Unexpected error
 */
router.post("/list", Msg.findAll);

/**
 * 查询单个消息
 * @route POST /api/private/msg/findOne
 * @group 消息管理 - find one msg
 * @param {string} id - 请输入消息ID
 * @returns {object} 200 - A msg info
 * @returns {object} 605 - 请求失败
 * @returns {Error}  default - Unexpected error
 */
router.post("/findOne", Msg.findOne);

/**
 * 更新消息
 * @route POST /api/private/msg/update
 * @group 消息管理 - update msg
 * @param {string} id.query.required - 消息ID
 * @param {string} content - 请输入消息内容
 * @param {string} email - 请输入邮箱
 * @param {string} username - 发送人
 * @param {string} receive - 接收人
 * @returns {object} 200 - An array of msg info
 * @returns {object} 605 - 请求失败
 * @returns {Error}  default - Unexpected error
 */
router.post("/update", Msg.update);

/**
 * 回复消息
 * @route POST /api/private/msg/replyMsg
 * @group 消息管理 - reply msg
 * @param {string} id.query.required - 消息ID
 * @param {string} content.query.required - 请输入回复内容
 * @param {string} email - 回复邮箱
 * @returns {object} 200 - An array of msg info
 * @returns {object} 605 - 请求失败
 * @returns {Error}  default - Unexpected error
 */
router.post("/replyMsg", Msg.replyMsg);

module.exports = router;